/**
 * 使用流的方式，将 接收到的信息，写入文件
 *
 * 客户端测试方法： telnet localhost 8080
 *
 * 当前运行在 node: 20.10.0
 */

import net from 'node:net'
import {createWriteStream} from 'node:fs'

const server = net.createServer()

const wr = createWriteStream('./05.txt', {
  encoding: 'utf-8'
})

server.on('connection', (socket) => {
  console.log('有用户连接进来');

  socket.pipe(wr, {
    // 默认是true: 当数据呗全部读取完毕时，立即结束写操作
    // false: 数据读取完毕后，继续等待，不结束写操作
    // end: false
  })

  socket.on('error', (err) => {
    console.log('socket 发生了错误');
    console.log(err);
  })

  socket.on('end', () => {
    console.log('结束了-----------');
    // 如果上面的 pipe 设置为 false, 这里才可以做数据的追加动作,再写入一些数据； 否则不能调用，因为true的情况内部就已经调用了end
    // wr.end('\r\n 结束!!!', 'utf-8')
  })

  socket.on('close', () => {
    console.log('连接关闭');
  })
})

server.listen(8080, () => {
  console.log('创建的TCP 服务器， http://localhost:8080');
})